package com.education.welco.mapper;

import com.education.welco.pojo.SResources;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 学校课程资源 数据层
 *
 * @author d
 * @date 2020-05-08
 */
@Repository
public interface SResourcesMapper {

    /**
     * 查询学校课程资源信息
     *
     * @param id 学校课程资源ID
     * @return 学校课程资源信息
     */
    public SResources selectSResourcesById(Integer id);

    /**
     * 查询学校课程资源信息根据节的id
     *
     * @param catalogId 学校课程资源ID
     * @return 学校课程资源信息
     */
    public List<SResources> selectSResourcesByCatalogId(@Param("catalogId") Integer catalogId);


    /**
     * 查询图片查看内容
     *
     * @param sResources 学校课程资源ID
     * @return 学校课程资源信息
     */
    public List<SResources> selectSCatalogMenuByCatalogId(SResources sResources);

    /**
     * 查询学校课程资源信息
     *
     * @param list 学校课程资源ID
     * @return 学校课程资源信息
     */
    public List<SResources> selectSResourcesByIds(@Param("list") List<Integer> list);

    /**
     * 查询学校课程资源列表
     *
     * @param sResources 学校课程资源信息
     * @return 学校课程资源集合
     */
    public List<SResources> selectSResourcesList(SResources sResources);

    /**
     * 新增学校课程资源
     *
     * @param sResources 学校课程资源信息
     * @return 结果
     */
    public int insertSResources(SResources sResources);

    /**
     * 修改学校课程资源
     *
     * @param sResources 学校课程资源信息
     * @return 结果
     */
    public int updateSResources(SResources sResources);

    /**
     * 删除学校课程资源
     *
     * @param id 学校课程资源ID
     * @return 结果
     */
    public int deleteSResourcesById(Integer id);

    /**
     * 批量删除学校课程资源
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSResourcesByIds(String[] ids);

    int selectresourcesByCatalog(@Param("catalogId") int catalogId);

    /**
     * 平台资源和我的资源迁移到备课中心课程下
     *
     * @param resourcesList
     * @param topCatalogId
     * @param catalogId
     * @return
     */
    int batchInsertSResources(@Param("resourcesList") List<SResources> resourcesList, @Param("topCatalogId") Integer topCatalogId,
                              @Param("catalogId") Integer catalogId, @Param("type") String type);

    Integer updateSResourcesByUrl(@Param("contentUrl") String contentUrl, @Param("state") String state);
}